Local desktop virtualization involves a computing device that hosts a guest virtual machine with a guest operating system (OS). A virtualized desktop runs on the computing device via the virtual machine using hardware virtualization or emulation. This type of desktop virtualization offers numerous advantages.
One advantage of desktop virtualization is allowing a user of a computing device that runs one operating system to run a different operating system on the device via a virtual machine. For example, a user of a computer running a Mac OS operating system, available from Apple, Inc., can run a virtual machine on the computer with a Windows operating system, available from Microsoft Corp. Accordingly, with local desktop virtualization, the user is able to use applications on her computer that might not be compatible with the computer's native OS. This may be useful in several scenarios, for example, if a user prefers to use one operating system, she may still be able to use applications on her computer that are only available on another operating system by executing a virtual machine on the computer with the other operating system. Similarly, local desktop virtualization is useful in numerous other contexts, such as for application testing, software development, and so on.
Latest technologies have made progress towards making the experience of using applications in virtualized desktops more akin to using native applications on the computing device. For example, some products allow an application that is running in a virtual machine to be presented in a window that sits directly in the host OS desktop by hiding the virtual machine's console view. Namely, instead of the application window appearing within another window that contains a view of the virtual machine's desktop, the application window can be displayed directly on the host desktop, making the user experience more akin to using the application directly in the host OS.
However, numerous problems and inconveniences still persist when using applications on virtual desktops. One such problem is that menu bar systems between operating systems are often different. Accordingly, a user accessing an application on a virtual machine is often faced with having to work with two different menu bar systems because the application's menu bar is set through the guest OS, while menu bars in the host OS are set through the host OS. Consequently, a user who is accustomed to using one menu bar system on her computing device may be forced to use a different menu bar system when accessing applications in the virtual desktop. A more efficient approach is desirable for integrating menu bars of applications in desktop virtualization environments.